package com.runa.monitor.platinterface.netservice.equipment.dtu.point;

import com.runa.monitor.comm.dto.Point;

import java.util.ArrayList;
import java.util.Arrays;

/**
 * 2024/9/2 13:39
 * zhangYB
 */
public class JunPeiPoints extends ModbusPoints {


    public JunPeiPoints(Integer limit) {
        super(limit);
        init();
    }

    public JunPeiPoints() {
        this(null);
    }


    public void init() {
        initIds();
        initPoints();
    }

    public void initPoints() {
        points = new ArrayList<>();
        // 流速 m³/h（7位有效数字）
        points.add(new Point(ids.get(0), "flow", "浮点", "CDAB", 0));
        // 累计流量 m³（7位有效数字）
        points.add(new Point(ids.get(1), "accFlow","浮点", "CDAB", 0));
        // 供水温度 ℃（7位有效数字）
        points.add(new Point(ids.get(2), "supplyTemp","浮点", "CDAB", 0));
        // 回水温度 ℃（7位有效数字）
        points.add(new Point(ids.get(3), "returnTemp","浮点", "CDAB", 0));
        // 当前热量 GJ（7位有效数字）
        points.add(new Point(ids.get(4), "accHeat","浮点", "CDAB", 0));
        // 当前冷量 GJ（7位有效数字）
        points.add(new Point(ids.get(5), "accCold","浮点", "CDAB", 0));
        // 热功率 GJ/h（7位有效数字）
        points.add(new Point(ids.get(6), "power","浮点", "CDAB", 0));
        // 运行时间 秒
        points.add(new Point(ids.get(7), "workTime","32位整型", "CDAB", 0));
        // 实时时间 6字节 年月日时分秒（年取后两位）
        points.add(new Point(ids.get(8), "meterDate", "UTF8", "FEDCBA", 0));

        // 当前热量 MWh（7位有效数字）
        points.add(new Point(ids.get(9), "accHeat1", "浮点", "CDAB", 0));
        // 当前冷量 MWh（7位有效数字）
        points.add(new Point(ids.get(10), "accCold1", "浮点", "CDAB", 0));
        // 热功率 kW（7位有效数字）
        points.add(new Point(ids.get(11), "power1", "浮点", "CDAB", 0));

        // 当前热量 kWh（7位有效数字）
        points.add(new Point(ids.get(12), "accHeat2", "浮点", "CDAB", 0));
        // 当前冷量 kWh（7位有效数字）
        points.add(new Point(ids.get(13), "accCold2", "浮点", "CDAB", 0));
        // 热功率 MW（7位有效数字）
        points.add(new Point(ids.get(14), "power2", "浮点", "CDAB", 0));

        // 当前热量 MJ（7位有效数字）
        points.add(new Point(ids.get(15), "accHeat", "浮点", "CDAB", 0));
        // 当前冷量 MJ（7位有效数字）
        points.add(new Point(ids.get(16), "accCold", "浮点", "CDAB", 0));

        // 系统状态
        points.add(new Point(ids.get(17), "systemStatus", "16位整型", "AB", 0));
        // 上行串口参数
        points.add(new Point(ids.get(18), "upSerialPortParameter", "16位整型", "AB", 0));
        // 模块地址
        points.add(new Point(ids.get(19), "moduleAddress", "16位整型", "AB", 0));
        // 抄表周期
        points.add(new Point(ids.get(20), "readMeterCycle", "16位整型", "AB", 0));
        // 下行串口参数
        points.add(new Point(ids.get(21), "downSerialPortParameter", "16位整型", "AB", 0));
        // 读计量数据标识
        points.add(new Point(ids.get(22), "readMeterDataTag", "16位整型", "AB", 0));

    }

    public void initIds() {
//        ids = Arrays.asList(40001, 40003, 40005, 40007, 40009
//                , 40011, 40013, 40015
//                , 40021, 40025, 40027, 40029
//                , 40031, 40033, 40035, 40037, 40039
//                , 40050, 40051, 40052, 40053, 40054, 40055);
        ids = Arrays.asList(40000, 40002, 40004, 40006, 40008
                , 40010, 40012, 40014
                , 40020, 40024, 40026, 40028
                , 40030, 40032, 40034, 40036, 40038
                , 40049, 40050, 40051, 40052, 40053, 40054);

    }






}
